package com.tanhua.dubbo.server.api;

import com.tanhua.common.pojo.RecommendUser;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 *
 * @ClassName: UserLikeApi
 * @Author:王晨晗
 * @Description: 用户喜欢功能接口
 * @Date: 2022/01/06/23:00
 */
public interface UserLikeApi {
    /**
     * @description 用户喜欢
     * @param userId        //当前用户id
     * @param likeUserId    //喜欢的用户id
     * @return
     */
    Boolean likeUser(Long userId , Long likeUserId);

    /**
     * @description 不喜欢
     * @param userId  当前用户id
     * @param likeUserId  喜欢的用户id
     * @return
     */
    Boolean notLikeUser(Long userId , Long likeUserId);

    /**
     * @description 是否相互喜欢
     * @param userId    用户id
     * @param likeUserId    喜欢的用户id
     * @return
     */
    Boolean isMutualLike(Long userId , Long likeUserId);

    /**
     * @description 查询用户喜欢列表
     * @param userId
     * @return
     */
    List<Long> queryLikeList(Long userId);

    /**
     * @description 查询不喜欢列表
     * @param userId
     * @return
     */
    List<Long> queryNotLikeList(Long userId);

    /**
     * @description 查询互相喜欢数
     * @param userId
     * @return
     */
    Long queryEachLikeCount(Long userId);

    /**
     * @description 查询喜欢数
     * @param userId
     * @return
     */
    Long queryLoveCount(Long userId);

    /**
     * @description 查询粉丝数
     * @param userId
     * @return
     */
    Long queryFanCount(Long userId);

    /**
     * @description 查询互相喜欢列表
     * @param userId
     * @param page
     * @param pageSize
     * @return
     */
    List<RecommendUser> queryEachLikeList(Long userId , Integer page , Integer pageSize , String nickName);

    /**
     * @description 查询喜欢列表
     * @param userId
     * @param page
     * @param pageSize
     * @return
     */
    List<RecommendUser> queryLoveList(Long userId , Integer page , Integer pageSize ,  String nickName);

    /**
     * @description 查询粉丝列表
     * @param userId
     * @param page
     * @param pageSize
     * @return
     */
    List<RecommendUser> queryFanList(Long userId , Integer page , Integer pageSize , String nickName);

    /**
     * @description 用户是否喜欢
     * @param userId
     * @param likeUserId
     * @return
     */
    boolean isLike(Long userId, Long likeUserId);
}
